﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace jaysJourney_v01.Utils.Levels
{
    public class Level
    {
        /**
         * MEMBER VARIABLES
         * */
        
        // Common

        private String levelName;
        private String setting;
        private String size;
        private String creatorName;
        private String worldCreation;

        private int numRates;
        private int numStarts;
        private double curRating;
        private int bestTime;
        private String recordHolder;
        private int avgBestTime;
        private int personalBestTime;

        /**
         * METHODS
         * */

        // Constructor

        public Level(String lvlName, String setting, String size, String creatorName, int numStarts, int numRatings, double curRating, String worldCreation, int bestTime, String recordHolder, int avgBestTime)
        {
            this.levelName = lvlName;
            this.setting = setting;
            this.size = size;
            this.creatorName = creatorName;
            this.numStarts = numStarts;
            this.numRates = numRatings;
            this.curRating = curRating;
            this.worldCreation = worldCreation;
            this.bestTime = bestTime;
            this.recordHolder = recordHolder;
            this.avgBestTime = avgBestTime;
        }

        // getlevel

        public String getLevel()
        {
            return this.levelName;
        }

        // getCreatorName

        public String getCreatorName()
        {
            return this.creatorName;
        }

        // getSetting

        public String getSize()
        {
            return this.size;
        }

        // getSize

        public String getSetting()
        {
            return this.setting;
        }

        // getNumRates

        public int getNumRates()
        {
            return this.numRates;
        }

        // setNumRates

        public void setNumRates(int num)
        {
            this.numRates = num;
        }

        // getNumStarts

        public int getNumStarts()
        {
            return this.numStarts;
        }

        // setNumStarts

        public void setNumStarts(int num)
        {
            this.numStarts = num;
        }

        // getCurRating

        public double getCurRating()
        {
            return this.curRating;
        }

        // setCurRating

        public void setCurRating(float rate)
        {
            this.curRating = rate;
        }

        // getWorldCreation

        public String getWorldCreation()
        {
            return this.worldCreation;
        }

        // get bestTime

        public int getBestTime()
        {
            return this.bestTime;
        }

        // set bestTime

        public void setBestTime(int newTime)
        {
            this.bestTime = newTime;
        }

        // getRecordHolder

        public String getRecordHolder()
        {
            return this.recordHolder;
        }

        // set recordHolder

        public void setRecordHolder(String name)
        {
            this.recordHolder = name;
        }

        // getavgbesttime

        public int getAvgBestTime()
        {
            return this.avgBestTime;
        }

        // set avgTime

        public void setAvgTime(int time)
        {
            this.avgBestTime = time;
        }

        //setpersonalbest

        public void setPersonalBest(int pers)
        {
            this.personalBestTime = pers;
        }

        // get personalbest

        public int getPersonalBest()
        {
            return this.personalBestTime;
        }

        // toString

        public String toString()
        {
            return this.levelName + ", " + this.creatorName + ", " + this.numRates + ", " + this.curRating + ", " + this.worldCreation + ", " + this.bestTime;
        }
    }
}
